On language processors and software maintenance
نویسنده
چکیده
Software maintenance factories are infrastructures that generate tools for software maintenance from language descriptions and additional information. Besides the maintenance of language specifications, software language evolution requires maintenance of software written in that language as well as maintenance of software that transforms software written in the evolving language. We argue that a software maintenance factory needs special maintenance. It should provide support for maintenance of language descriptions, derived tools, and the maintenance factory itself. As language processors can form the core of such technology, we investigate their improvement. This is done in three areas: Maintenance: We investigate the consequences of software language evolution. A grammar change can have an effect on the words of the language and can require an adaptation of documents containing the words. A special case is the format evolution of data and a necessary adaptation of the data existing. We study this problem for format evolution for DTDs. While the words of the language remain the same after the refactoring of a context-free grammar, semantic rules have to be adapted in an attribute grammar. We study the consequences of left-recursion removal to attribute grammars and justify that the semantic rules can be automatically adapted while preserving the semantics. Declarative transformation rules can transform programs that are available as abstract syntax trees. When an underlying grammar is extended, existing transformation rules need to be adapted. To study the problem we introduce layout preservation to an existing language processor and demonstrate that transformation rules can be automatically adapted. By defining an aspect-oriented model for Prolog we support modularity of language descriptions based on logic grammars, and consequently, that of derived language processors, which makes them better maintainable, replaceable, and configurable. Technical improvement: By defining basic roles of program extension we provide a way for more disciplined meta-programming for declarative programs including language descriptions. Using language technology we introduce layout preservation in existing language processors for maintenance. We analyse transformation rules regarding their layout preservation behaviour. Besides using the analyse to for automatic decisions on layout preservation, it can advice the coder of a transformation rule to change the specification style to make layout preservation more likely. Usability for the user: Disciplined meta-programming increases the usability, as it allows to define reusable and better understandable recipes of meta-programs. We discuss that the left recursion removal with automatic migration of semantic rules can help to preserve readability of grammars in use. We show that complexity of argument positions in transformation rules can be hidden by applying the approach of grammar extension and automatically migrating the transformation rules. We provide an object-oriented combination model for transformations. Based on it, a workbench for visual interactive explorative transformational programming has been implemented with grammars and transformations as first class citizens.
منابع مشابه
Designing and Dismounting an Intelligent System of Irrigation Management for Greenhouse based on Delphi Software
The drought continuity and also restricting watery sources caused agriculture section forgetold flooding methods for optimum water exploitation and proceeding new irrigation systems.New generation of irrigation systems called intelligent systems is a new solution leading toexploiting water increase to higher than 80%. In order to measure sensors and to controlprocessors in designing and dismoun...
متن کاملLanguage Evolution in Practice: The History of GMF
In consequence of changing requirements and technological progress, software languages are subject to change. The changes affect the language’s specification, which in turn affects language processors as well as existing language utterances. Unfortunately, little is known about how software languages evolve in practice. This paper presents a case study on the evolution of four modeling language...
متن کاملSpeeding up the Stress Analysis of Hollow Circular FGM Cylinders by Parallel Finite Element Method
In this article, a parallel computer program is implemented, based on Finite Element Method, to speed up the analysis of hollow circular cylinders, made from Functionally Graded Materials (FGMs). FGMs are inhomogeneous materials, which their composition gradually varies over volume. In parallel processing, an algorithm is first divided to independent tasks, which may use individual or shared da...
متن کاملLanguage-Driven Software Development
Language-driven software development consists in applying computer language design and implementation techniques to build conventional software. The keynote reviews two different languagedriven development approaches: domain-specific languages (DLSs), and language-oriented architectures (LOAs). The DSL approach focuses on the provision of languages specialized in different application aspects, ...
متن کاملADDS: A Document-Oriented Approach for Application Development
This paper proposes a document oriented paradigm to the development of contentintensive, document-based applications (e.g. educational and hypermedia applications, and knowledge based systems). According to this paradigm, the main aspects of this kind of applications can be described by means of documents. Afterwards, these documents are marked up using descriptive domain-specific markup langua...
متن کامل